//
//  OosAtomServiceCallback.h
//  Oos4ios
//
//  Created by Pablo Gonzalez on 3/23/11.
//

#import <Foundation/Foundation.h>
#import "../../Atom/Services/IOosAtomServiceCallback.h"
#import <oos4ios/DAOs/OosDaoTicket.h>
#import <oos4ios/DAOs/IOosDaoCallback.h>
#import <oos4ios/Parsers/IOosParserCallback.h>



@interface OosAtomServiceCallback : NSObject <IOosAtomServiceCallback, IOosParserCallback> {
	
	id<IOosFeedParser> mFeedParser;
    id<IOosCategoryParser> mCategoryParser;
    id<IOosEntryParser> mEntryParser;
	OosDaoTicket *mTicket;
	id <IOosDaoReadCallback> mReadCallback;
	id <IOosDaoCreateCallback> mCreateCallback;
	id <IOosDaoUpdateCallback> mUpdateCallback;
	id <IOosDaoDeleteCallback> mDeleteCallback;
	id <IOosDaoSizeCallback> mSizeCallback;
    
//    NSMutableArray *parseQueue;
//    BOOL workerThreadActive;
//    NSLock *threadLock;
    
    NSOperationQueue *parserQueue;
    
}

+ (OosAtomServiceCallback *) callback;

@property (nonatomic, retain) OosDaoTicket *ticket;
@property (nonatomic, retain) id <IOosDaoReadCallback> readCallback;
@property (nonatomic, retain) id <IOosDaoUpdateCallback> updateCallback;
@property (nonatomic, retain) id <IOosDaoCreateCallback> createCallback;
@property (nonatomic, retain) id <IOosDaoDeleteCallback> deleteCallback;
@property (nonatomic, retain) id <IOosDaoSizeCallback> sizeCallback;

@end
